package com.epwk.tools;



import com.epwk.logger.LoggerControler;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * Created by Administrator on 2016/11/13.
 *
 * 用于时间控件的输入，生成需要的时间格式
 *
 */
public class DateFormat {
    final static LoggerControler log = LoggerControler.getLogger(DateFormat.class);

    public static final String COMMON_DATE_FORMAT = "yyyy-MM-dd";

    public static final String SHORT_DATE_FORMAT = "yy-MM-dd HH:mm";

    public static final String SMALL_DATE_FORMAT = "MM-dd";

    public static final String ABC_ORDER_DATE_FORMAT = "yyyy/MM/dd";

    public static final String ABC_ORDER_TIME_FORMAT = "HH:mm:ss";

    public static final String LOTTERY_PRINTING_TIME_FORMAT = "HH_mm_ss";

    public static final String CHECK_LOG_FORMAT = "yyyyMMdd";

    public static final String TEN_PAY_DATE_STRING_FORMAT = "yyMMdd";

    public static final String REPORT_CSV_FORMAT = "yyyyMMdd_HHmmss";

    public static final String ZH_DATE_FORMAT = "yyyy年MM月dd日 HH:mm:ss";

    public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";

    public static final String DATE_FORMAT = "yyyy-MM-dd HH-mm-ss";

    //	引入SimpleDateFormat类处理时间
    private static SimpleDateFormat simpleDateFormat;

    public static String format(String type) {
//        SimpleDateFormat类可以将时间格式化成某种类型的
        simpleDateFormat = new SimpleDateFormat(type);
//        将当前时间按照传入的时间类型进行格式化
        String s = simpleDateFormat.format(new Date());
        log.info(s);
        return s;
    }

    //    毫秒级的时间戳，其实也是个随机数
//    用于验证输入手机号
    public static long time() {
        long t = System.currentTimeMillis();
        log.info(String.valueOf(t));
        return t;
    }

    public static String formatOld(String typein,String typeout, String dateString) throws ParseException {

//    输入的dateString的格式必须是typein
        SimpleDateFormat sdf = new SimpleDateFormat(typein);
//        将字符串装换成时间类
        Date date = sdf.parse(dateString);
//        SimpleDateFormat类可以将时间格式化成某种类型的
        simpleDateFormat = new SimpleDateFormat(typeout);
//        将当前时间按照传入的时间类型进行格式化
        String s = simpleDateFormat.format(date);
        log.info(s);
        return s;
    }

    /*
    * 设置比当前时间早或者晚几天的时间
    * */
    public static String beforeORLateDate(int i,String type){

        Date nowDate = new Date();   //当前时间
        Date thenDate = new Date();
        Calendar calendar = Calendar.getInstance(); //得到日历
        calendar.setTime(nowDate);//把当前时间赋给日历
        calendar.add(Calendar.DAY_OF_MONTH, i);  //设置为前一天
        thenDate = calendar.getTime();   //得到前一天的时间

//        SimpleDateFormat类可以将时间格式化成某种类型的
        simpleDateFormat = new SimpleDateFormat(type);
//        将当前时间按照传入的时间类型进行格式化
        String s = simpleDateFormat.format(thenDate);
        log.info(s);
        return s;

    }

}
